/**
 * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

function  {{.item.func_name}}{{.test_name|capitalize}}() : {{.item.result_type}} {
{%- for param_name, param_data in test_data.items() %}
  let {{.param_name}} : {{.item.method_signature[param_name]}} = {{.param_data}}
{%- endfor %}
  let actual : {{.item.result_type}}; 
{%- if item.method_throws == "true" %}
  try {
{%- endif %}  
{%- if item.method_nature == "function" %}
      actual = {{.item.method_name}}({{.item.method_signature.keys() | join(", ")}});
{%- else %}
      {{.item.method_name}}({{.item.method_signature.keys() | join(", ")}});
      actual = {{.item.result}}
{%- endif %}
{%- if item.method_throws == "true" %}
  }  catch (e)  {
     console.println("Unexpected exception in positive test")
  }
{%- endif %}  
  return actual
}
